Meme Generator

Ten przewodnik zawiera praktyczne podejście do implementacji aplikacji z wykorzystaniem wywoływania funkcji w Gemme. Dzięki starannemu opracowaniu promptów tę technikę można stosować do różnych wersji modelu Gemma. Więcej informacji znajdziesz w artykule Beyond the Chatbot: Agentic AI with Gemma.

Wywołania funkcji

Typowa struktura wywoływania funkcji obejmuje kilka kluczowych komponentów, które umożliwiają Gemma interakcję z zewnętrznymi narzędziami lub interfejsami API.

  1. Opisywanie narzędzi
    Powiedz modelowi, z jakich „narzędzi” (czyli funkcji) może korzystać. Obejmuje to m.in.:

    • Co robi narzędzie (opis)
    • Jakich informacji potrzebuje narzędzie (parametry)
  2. Użytkownik zadaje pytanie
    Użytkownik zadaje modelowi pytanie lub zleca mu zadanie.

  3. Gemma decyduje
    Model sprawdza, czy potrzebuje narzędzia do udzielenia odpowiedzi na Twoje pytanie.

  4. Gemma prosi o narzędzie
    Jeśli narzędzie jest potrzebne, Gemma wygeneruje kod z kodem narzędzia.

  5. Narzędzie wykonuje swoje zadanie
    Narzędzie (funkcja) pobiera informacje z modelu i wykonuje swoje zadanie.

  6. Narzędzie zwraca wyniki
    Gemma oczekuje wyniku zawiniętego w ramach zmiennej ```tool_output```.

  7. Gemma podaje ostateczną odpowiedź
    Model korzysta z wyników narzędzia, aby utworzyć dla Ciebie pełną i dokładną odpowiedź.

Pomocne wskazówki

  • Schemat JSON: użycie schematu JSON do definiowania parametrów, choć nie jest to wymagane, zapewnia spójną strukturę i automatyczną walidację.
  • Jasne zrozumienie: jakość opisu funkcji jest kluczowa, aby model mógł prawidłowo określić, kiedy jej użyć.
  • Obsługa błędów: niezawodna obsługa błędów jest niezbędna do zarządzania sytuacjami, w których wywołanie funkcji kończy się niepowodzeniem lub zwraca nieoczekiwane wyniki.
  • Proces iteracyjny: czasami między modelem a wywołaniami funkcji dochodzi do wielu tur konwersacji.

Przykładowe prompty i dane wyjściowe

Kod tej aplikacji znajdziesz w repozytorium kodu Gemma Cookbook.

Krok 1 i 2. Opisz narzędzie i wyznacz zadanie

Zabawny obraz kota

Dane wejściowe: śmieszny obraz kota
Tekst:

If you decide to invoke any of the function(s), it should be wrapped with ```tool_code```.

You have access to the following tools.

* `generate_meme(image, top_text, middle_text, bottom_text)`: Generate a meme with the given parameters

Make a funny meme with this. "meme.jpg"

Krok 3. Gemma podejmuje decyzję i prosi o pomoc

Ten prompt zwróci taką odpowiedź:

Okay, here's a funny meme based on the image of the surprised cat:

```tool_code
generate_meme(image="meme.jpg", top_text="Me when I hear a creak", middle_text="Is it safe?", bottom_text="Probably not.")
```

Krok 4. Narzędzie wykonuje swoje zadanie

Przetwarzanie danych wyjściowych modelu polega na znajdowaniu bloków kodu, analizowaniu argumentów funkcji i wykonaniu funkcji.

Ostateczne dane wyjściowe z generatora memów